#ifndef CAR_H
#define CAR_H

#include <string>  
#include <iostream>
#include <fstream>
#include"AGXkit.h"
#include "battery.h"
#include "camera.h"
#include"chassis.h"
#include "display.h"
#include "gyroscope.h"
#include "lidar.h"
#include "student.h"
using namespace std;
  
// 定义智能小车类  
class SmartCar {  
private:  
    std::string carId;             // 智能小车编号  
    Chassis chassis;               // 底盘信息  
    AGXKit agxKit;                 // AGX套件信息  
    Camera camera;                 // 双目摄像头信息  
    Lidar lidar;  
    Gyroscope gyroscope;  
    Display display;  
    Battery battery; 
    Student student;
    // 可以添加更多组件作为类的成员  
public:
    // 构造函数，只接受小车编号和底盘编号作为输入  
    SmartCar(const std::string& carId, const std::string& chassisId);
    SmartCar(std::string file);
    SmartCar();
        // 将属性写入文件的方法
    void writeToFile(std::ofstream &file);
    bool setStudent(const Student &st);
    Student getStudent();

    // 打印属性的方法
    void print() const;
    std::string getCarId() const;
    std::string getChassisId() const;
    // bool display(std::string fileName);
};  


#endif